#ifndef POSTGRES_SQLCA_H
#define POSTGRES_SQLCA_H

#ifndef PGDLLIMPORT
#if  defined(WIN32) || defined(__CYGWIN__)
#define PGDLLIMPORT __declspec (dllimport)
#else
#define PGDLLIMPORT
#endif                            /* __CYGWIN__ */
#endif                            /* PGDLLIMPORT */

#define SQLERRMC_LEN    150

#ifdef __cplusplus
extern "C"
{
#endif

struct sqlca_t
{
    char        sqlcaid[8];
    long        sqlabc;
    long        sqlcode;
    struct
    {
        int            sqlerrml;
        char        sqlerrmc[SQLERRMC_LEN];
    }            sqlerrm;
    char        sqlerrp[8];
    long        sqlerrd[6];
    /* Element 0: empty                        */
    /* 1: OID of processed tuple if applicable            */
    /* 2: number of rows processed                */
    /* after an INSERT, UPDATE or                */
    /* DELETE statement                    */
    /* 3: empty                        */
    /* 4: empty                        */
    /* 5: empty                        */
    char        sqlwarn[8];
    /* Element 0: set to 'W' if at least one other is 'W'    */
    /* 1: if 'W' at least one character string        */
    /* value was truncated when it was            */
    /* stored into a host variable.             */

    /*
     * 2: if 'W' a (hopefully) non-fatal notice occurred
     */    /* 3: empty */
    /* 4: empty                        */
    /* 5: empty                        */
    /* 6: empty                        */
    /* 7: empty                        */

    char        sqlstate[5];
};

struct sqlca_t *ECPGget_sqlca(void);

#ifndef POSTGRES_ECPG_INTERNAL
#define sqlca (*ECPGget_sqlca())
#endif

#ifdef __cplusplus
}
#endif

#endif
